package com.vq3.digitalizationsoftwareintegrates.Service.MessageCenter;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.Group_Type;
import com.vq3.digitalizationsoftwareintegrates.Entity.Enum.MessageType;
import com.vq3.digitalizationsoftwareintegrates.Entity.MessageCenter.BusinessCenterMessageEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.MessageCenter.BusinessCenterMessageEntity_per;
import com.vq3.digitalizationsoftwareintegrates.Entity.MessageCenter.MessageCenterEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.MessageCenter.MessageCenter_PerEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.Spot_Check.MongoDBEntity.*;
import com.vq3.digitalizationsoftwareintegrates.Entity.Spot_Check.S_C_PointEntity;
import com.vq3.digitalizationsoftwareintegrates.Entity.User.*;

import java.util.Date;
import java.util.List;
import java.util.Set;

public interface MessageCenterService {

    List<MessageCenter_PerEntity> uidFindRoleIdFindMid(Permission_TBEntity permission_tbEntity) throws JsonProcessingException;

    List<User_RoleEntity> uidFindU_RTBToRoles(int uid);

    List<MongoDB_S_C_WebSocketMessageEntity> rolesFindMongoDBToMongoDB_S_C_WebSocketMessageEntityS(Permission_TBEntity  permission_tbEntity);

    List<MongoDB_S_C_Point_ContentEntity> itemNameFindMongoDBToMongoDB_S_C_Point_ContentEntityS(List<MongoDB_S_C_WebSocketMessageEntity> mongoDB_s_c_webSocketMessageEntities);

    List<MongoDB_S_C_WebSocketSendMessageEntity> findNormalMessages(String uname);

    List<MongoDB_S_C_WebSocketSendMessageEntity> findSysMessages(List<User_RoleEntity> user_roleEntities);

    boolean deleteMessage(String itemName,String uname);

    List<UserEntity> findUserAll();

    List<URole_TBEntity> findURole();

    void saveSysMessage(MongoDB_S_C_WebSocketMessageEntity messageEntity);

    boolean deleteSysMessage(String message, Integer date, Integer month, Integer hour, MessageType messageType);

    URole_TBEntity uroleFindURoleTB(String urole);

    List<MongoDB_S_C_SysAuthAuditMessageEntity> findUserAuthAuditMessage(Group_Type group_type);

    Group_TBEntity groupIdFindGroup(Integer groupId);


    List<MongoDB_S_C_SaveSCDailyContextEntity> findS_C_DailyAuditMessage(Permission_TBEntity permission_TBEntity);

    List<MongoDB_S_C_SaveSCDailyContextEntity> findS_C_DailyAuditMessage(Permission_TBEntity permission_TBEntity, Date date,String pointName);

    boolean auditPassBtnFun(String userName);

    boolean auditNGBtnFun(String userName);

    List<BusinessCenterMessageEntity> getBMMessageMenu(Set<Integer> b_m_idS);

    List<MongoDB_S_C_SaveSCDailyContextEntity> findS_C_ExMessage(Permission_TBEntity permission_tbEntity);

    List<MessageCenterEntity> midFindMessageCenterSidBar(Set<Integer> midS);

    List<BusinessCenterMessageEntity_per> perIdFindBMMessageMid(Permission_TBEntity permission_tbEntity);
}
